[Genuino 101][Johnny-Five] RGB 照度センサーの制御
車輪開発大好きおたいがです。こんにちは。( 挨拶 )
今回は Genuino 101 ( 以下 Genuino ) と Johnny-Five を使用したRGB 照度センサーの制御についてまとめてみました。
Johnny-Five の Color クラス API では、ISL29125 というセンサーをサポートしているため、購入して動作確認してみました。
動作環境・道具など
- Genuino 101
- USB ケーブル
- ジャンパーワイヤ
- ISL29125 RGB ライトセンサ
- はんだ+こて
- Windows 7 Pro (64bit)
- Arduino IDE 1.6.9 ( セットアップ記事を参考にしてください )
- Node.js v4.4.7
RGB 照度センサーの組み立て
ピンヘッダをはんだ付けする必要がありますが、センサが設置されている面を考慮しないと悲惨なことになります。( 方向を間違えて外そうとしたため、基盤を焦がしてしまいました… )
回路図
前回エントリで紹介したマトリックス LED と同様に、Genuino の電源、GND、そして 2 本の I2C ピン ( SDA と SCL ) をそれぞれセンサーに接続します。
サンプルスケッチ ( プログラム ) をボードに書き込む
Genuino に StandardFirmata スケッチを書き込みます。
( 参照 : https://dev.classmethod.jp/hardware/johnny-five-genuino-101-debut/#toc--- )
Johnny-Five 実行用のサンプルプロジェクト作成および実行
Johnny-Five の導入および実行するためのプロジェクトを用意します。任意のプロジェクトディレクトリを作成して移動したあとに、下記コマンドを入力します。
package.json の初期化
$npm init
Johnny-Five のダウンロード
$npm install johnny-five
サンプルコードの作成
var five = require('johnny-five'); // Genuino が接続されているポート番号 ( `/dev/tty*` (Mac/Linux) or `COM*` (Windows) ) var board = new five.Board({ 'port': 'COM8' }); board.on('ready', function() { var color = new five.Color({ 'controller' : 'ISL29125' }); color.on('change', function() { console.log('Color: #' + five.Color.hexCode(this.rgb)); }); });
実行
$node index
結果
$ node index >>Color: #c9e86f Color: #d9f778 Color: #d9f77a Color: #d9fd7a …
上記コードを実行しつつ、iPad 上に乗せて表示中の色を拾わせてみました。
画面の表示色 | センサが取得した色 |
---|---|
#ff0000 | #ffc869 |
#0000ff | #447fff |
#00cc00 | #9fffaa |
それなりに認識してくれていることが分りましたが、赤色系の認識が弱いような印象を受けました。もしかしたら基盤を焦がしたためにセンサがイカレている可能性もありますし、個体差があるのかもしれません。( 複数個購入しなかったことが悔やまれます )
以上のような反省点がありますが、良い実験になりました。